<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: /home/alejandro/Desarrollo eclipse/os1/Thirdparty/g2o/g2o/core/optimizable_graph.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('optimizable__graph_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">optimizable_graph.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="optimizable__graph_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// g2o - General Graph Optimization</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, H. Strasdat, W. Burgard</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">// All rights reserved.</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// Redistribution and use in source and binary forms, with or without</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// modification, are permitted provided that the following conditions are</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">// met:</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">// * Redistributions of source code must retain the above copyright notice,</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//   this list of conditions and the following disclaimer.</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">// * Redistributions in binary form must reproduce the above copyright</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">//   notice, this list of conditions and the following disclaimer in the</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">//   documentation and/or other materials provided with the distribution.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">// IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#ifndef G2O_AIS_OPTIMIZABLE_GRAPH_HH_</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#define G2O_AIS_OPTIMIZABLE_GRAPH_HH_</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;set&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;list&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;typeinfo&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="openmp__mutex_8h.html">openmp_mutex.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="hyper__graph_8h.html">hyper_graph.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parameter_8h.html">parameter.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parameter__container_8h.html">parameter_container.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="jacobian__workspace_8h.html">jacobian_workspace.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &quot;../stuff/macros.h&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceg2o.html">g2o</a> {</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;  <span class="keyword">class </span>HyperGraphAction;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;  <span class="keyword">struct </span>OptimizationAlgorithmProperty;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;  <span class="keyword">class </span>Cache;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;  <span class="keyword">class </span>CacheContainer;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <span class="keyword">class </span>RobustKernel;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html">   64</a></span>&#160;  <span class="keyword">struct  </span><a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a> : <span class="keyword">public</span> <a class="code" href="classg2o_1_1_hyper_graph.html">HyperGraph</a> {</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89d">   66</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89d">ActionType</a> {</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6">   67</a></span>&#160;      <a class="code" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6">AT_PREITERATION</a>, <a class="code" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da6022cb4383dca15d503e600c463c5e5a">AT_POSTITERATION</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651">   68</a></span>&#160;      <a class="code" href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651">AT_NUM_ELEMENTS</a>, <span class="comment">// keep as last element</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    };</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">   71</a></span>&#160;    <span class="keyword">typedef</span> std::set&lt;HyperGraphAction*&gt;    <a class="code" href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">HyperGraphActionSet</a>;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="comment">// forward declarations</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">class  </span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keyword">class  </span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html">   81</a></span>&#160;    <span class="keyword">class  </span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a> : <span class="keyword">public</span> <a class="code" href="structg2o_1_1_hyper_graph_1_1_hyper_graph_element.html">HyperGraph::HyperGraphElement</a></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    {</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html#a45d35331ee3deca38c26d1efb6b961ae">   83</a></span>&#160;      <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;      <span class="keyword">public</span>:</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#aa81fb1975f34e3aaf4c5110f7778a54e">~Data</a>();</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a647b9fcb65aa8309f7103635135ea513">Data</a>();</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a4a206c86daba1b47425199befd2e1ed4">read</a>(std::istream&amp; is) = 0;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#ad80cd8ea8013c54c766684ec0ef3daa3">write</a>(std::ostream&amp; os) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html#aa98d48f62d4c620cb62fbaeb1775389b">   91</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">HyperGraph::HyperGraphElementType</a> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#aa98d48f62d4c620cb62fbaeb1775389b">elementType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa">HyperGraph::HGET_DATA</a>;}</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html#a1e36ab8bfbbd4df1639338330bbaaf3c">   92</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a1e36ab8bfbbd4df1639338330bbaaf3c">next</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a8e0569f2b8cb8400d3eada1bd13c0ccb">_next</a>;}</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html#af9c0427357f1e81f9008c3173fddf34c">   93</a></span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#af9c0427357f1e81f9008c3173fddf34c">next</a>() {<span class="keywordflow">return</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a8e0569f2b8cb8400d3eada1bd13c0ccb">_next</a>;}</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html#a5811aac3f8eab3c19207663e946b343b">   94</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a5811aac3f8eab3c19207663e946b343b">setNext</a>(<a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* next_) { <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a8e0569f2b8cb8400d3eada1bd13c0ccb">_next</a> = next_; }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      <span class="keyword">protected</span>:</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_data.html#a8e0569f2b8cb8400d3eada1bd13c0ccb">   96</a></span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a8e0569f2b8cb8400d3eada1bd13c0ccb">_next</a>; <span class="comment">// linked list of multiple data;</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    };</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare.html">  102</a></span>&#160;    <span class="keyword">struct  </span><a class="code" href="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare.html">VertexIDCompare</a> {</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare.html#aabbf8cb54cc572189a51fd7353363de9">  103</a></span>&#160;      <span class="keywordtype">bool</span> operator() (<span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* v1, <span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* v2)<span class="keyword"> const</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">      </span>{</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordflow">return</span> v1-&gt;<a class="code" href="classg2o_1_1_hyper_graph_1_1_vertex.html#a48191960395856d1b686287489e53da3">id</a>() &lt; v2-&gt;<a class="code" href="classg2o_1_1_hyper_graph_1_1_vertex.html#a48191960395856d1b686287489e53da3">id</a>();</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;      }</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    };</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare.html">  112</a></span>&#160;    <span class="keyword">struct  </span><a class="code" href="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare.html">EdgeIDCompare</a> {</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare.html#acce61a97e66e611d79fcc1b758fc7336">  113</a></span>&#160;      <span class="keywordtype">bool</span> operator() (<span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>* e1, <span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>* e2)<span class="keyword"> const</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">      </span>{</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordflow">return</span> e1-&gt;<a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a3c6e31c64d98db332e83166bfbd1d7ff">internalId</a>() &lt; e2-&gt;<a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a3c6e31c64d98db332e83166bfbd1d7ff">internalId</a>();</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;      }</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    };</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">  120</a></span>&#160;    <span class="keyword">typedef</span> std::vector&lt;OptimizableGraph::Vertex*&gt;      <a class="code" href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">VertexContainer</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">  122</a></span>&#160;    <span class="keyword">typedef</span> std::vector&lt;OptimizableGraph::Edge*&gt;        <a class="code" href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">EdgeContainer</a>;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">  127</a></span>&#160;    <span class="keyword">class  </span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a> : <span class="keyword">public</span> <a class="code" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a> {</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;      <span class="keyword">private</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a45d35331ee3deca38c26d1efb6b961ae">  129</a></span>&#160;        <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;      <span class="keyword">public</span>:</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>();</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* clone() <span class="keyword">const</span> ;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a506c9664e88d886ba612d3ea95b6c76b">  137</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a506c9664e88d886ba612d3ea95b6c76b">userData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _userData; }</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a768057be134ffe93bc88b020d031eee5">  138</a></span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a768057be134ffe93bc88b020d031eee5">userData</a>() { <span class="keywordflow">return</span> _userData; }</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a858d15a4fadebfc8bce0162ac675f608">  140</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a858d15a4fadebfc8bce0162ac675f608">setUserData</a>(<a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* obs) { _userData = obs;}</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8f7ac810cad82a004365c1221fd16234">  141</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8f7ac810cad82a004365c1221fd16234">addUserData</a>(<a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* obs) { </div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;      <span class="keywordflow">if</span> (obs) {</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        obs-&gt;<a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a5811aac3f8eab3c19207663e946b343b">setNext</a>(_userData);</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        _userData=obs;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;      }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    }</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    </div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>();</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab10678592b5e707bf4abdc0ff6b8e4bf">  151</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab10678592b5e707bf4abdc0ff6b8e4bf">setToOrigin</a>() { setToOriginImpl(); updateCache();}</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">double</span>&amp; hessian(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span>&amp; hessian(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j) = 0;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span> hessianDeterminant() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span>* hessianData() = 0;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapHessianMemory(<span class="keywordtype">double</span>* d) = 0;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> copyB(<span class="keywordtype">double</span>* b_) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">double</span>&amp; b(<span class="keywordtype">int</span> i) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span>&amp; b(<span class="keywordtype">int</span> i) = 0;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span>* bData() = 0;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearQuadraticForm() = 0;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span> solveDirect(<span class="keywordtype">double</span> lambda=0) = 0;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="keywordtype">bool</span> setEstimateData(<span class="keyword">const</span> <span class="keywordtype">double</span>* estimate);</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a1cf16cd3b2e99169cdd6dfc139f926bc">  197</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a1cf16cd3b2e99169cdd6dfc139f926bc">setEstimateData</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; estimate) { </div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;          <span class="keywordtype">int</span> dim = estimateDimension();</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;          assert((dim == -1) || (estimate.size() == std::size_t(dim)));</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;          <span class="keywordflow">return</span> setEstimateData(&amp;estimate[0]);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        };</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getEstimateData(<span class="keywordtype">double</span>* estimate) <span class="keyword">const</span>;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#acc3b27eab95474c09ad52e6931f1d635">  215</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#acc3b27eab95474c09ad52e6931f1d635">getEstimateData</a>(std::vector&lt;double&gt;&amp; estimate)<span class="keyword"> const </span>{</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;          <span class="keywordtype">int</span> dim = estimateDimension();</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;          <span class="keywordflow">if</span> (dim &lt; 0)</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;          estimate.resize(dim);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;          <span class="keywordflow">return</span> getEstimateData(&amp;estimate[0]);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        };</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> estimateDimension() <span class="keyword">const</span>;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <span class="keywordtype">bool</span> setMinimalEstimateData(<span class="keyword">const</span> <span class="keywordtype">double</span>* estimate);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ac41fda9360e81bf704681831b1df11f8">  241</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ac41fda9360e81bf704681831b1df11f8">setMinimalEstimateData</a>(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; estimate) {</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">#ifndef NDEBUG</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;          <span class="keywordtype">int</span> dim = minimalEstimateDimension();</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;          assert((dim == -1) || (estimate.size() == std::size_t(dim)));</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;          <span class="keywordflow">return</span> setMinimalEstimateData(&amp;estimate[0]);</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        };</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getMinimalEstimateData(<span class="keywordtype">double</span>* estimate) <span class="keyword">const</span> ;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af928d21e7304cb21d75acf56bc40470a">  259</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af928d21e7304cb21d75acf56bc40470a">getMinimalEstimateData</a>(std::vector&lt;double&gt;&amp; estimate)<span class="keyword"> const </span>{</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;          <span class="keywordtype">int</span> dim = minimalEstimateDimension();</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;          <span class="keywordflow">if</span> (dim &lt; 0)</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;          estimate.resize(dim);</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;          <span class="keywordflow">return</span> getMinimalEstimateData(&amp;estimate[0]);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        };</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> minimalEstimateDimension() <span class="keyword">const</span>;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3db385b25818a5659d1fa8407cb0db45">push</a>() = 0;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a8487f537b16ac7a2ee416ea294a1e22e">pop</a>() = 0;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a368b5f22dbc57abd2f651a20d039f61c">discardTop</a>() = 0;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> stackSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af4357b634cfd884cd2fa1abb05832ec8">  291</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af4357b634cfd884cd2fa1abb05832ec8">oplus</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* v)</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        {</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;          oplusImpl(v);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;          updateCache();</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;        }</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a05a371cfa6314d0f2d209289b01cc922">  298</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a05a371cfa6314d0f2d209289b01cc922">hessianIndex</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _hessianIndex;}</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8f22181a161d724e95631d5da742b66a">  299</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8f22181a161d724e95631d5da742b66a">G2O_ATTRIBUTE_DEPRECATED</a>(tempIndex() <span class="keyword">const</span>) { <span class="keywordflow">return</span> hessianIndex();}</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a440f24c0108be5247f3529369aa1e53c">  301</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a440f24c0108be5247f3529369aa1e53c">setHessianIndex</a>(<span class="keywordtype">int</span> ti) { _hessianIndex = ti;}</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#abdcd545b6870b37135b055d18dae7a36">  302</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#abdcd545b6870b37135b055d18dae7a36">G2O_ATTRIBUTE_DEPRECATED</a>(setTempIndex(<span class="keywordtype">int</span> ti)) { setHessianIndex(ti);}</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a97294e6a1a573a44fe82ba36fc52c619">  305</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a97294e6a1a573a44fe82ba36fc52c619">fixed</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _fixed;}</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af92ef49e1bcd6a8166afa151d367b905">  307</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af92ef49e1bcd6a8166afa151d367b905">setFixed</a>(<span class="keywordtype">bool</span> fixed) { _fixed = fixed;}</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a216d79149edcfa9f666140205159fde8">  310</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a216d79149edcfa9f666140205159fde8">marginalized</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _marginalized;}</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#afabf1782886c78bf7b312bb1f2c90524">  312</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#afabf1782886c78bf7b312bb1f2c90524">setMarginalized</a>(<span class="keywordtype">bool</span> marginalized) { _marginalized = marginalized;}</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a86feed80301950b100142575b48e4fca">  315</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a86feed80301950b100142575b48e4fca">dimension</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _dimension;}</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ac57651173d6ce4bb4eebf8cb1d917551">  318</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ac57651173d6ce4bb4eebf8cb1d917551">setId</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {_id = id;}</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#aa605891d46b99ed97accf659f10bc8d5">  321</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#aa605891d46b99ed97accf659f10bc8d5">setColInHessian</a>(<span class="keywordtype">int</span> c) { _colInHessian = c;}</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a4d22b2e6832ae2ec040bfc0acb4cabb9">  323</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a4d22b2e6832ae2ec040bfc0acb4cabb9">colInHessian</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _colInHessian;}</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8cf4be7e2442444d9d43a80cc8388b1e">  325</a></span>&#160;        <span class="keyword">const</span> <a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8cf4be7e2442444d9d43a80cc8388b1e">graph</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> _graph;}</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a3f845c6f0ba9a87ab15caaddba5a4037">  327</a></span>&#160;        <a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a3f845c6f0ba9a87ab15caaddba5a4037">graph</a>() {<span class="keywordflow">return</span> _graph;}</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a2eb3dbe08fd20ca8feeeaecc63ce240c">  333</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a2eb3dbe08fd20ca8feeeaecc63ce240c">lockQuadraticForm</a>() { _quadraticFormMutex.lock();}</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a5badd602625433ee1ce8e2aa7bb3b2ac">  337</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a5badd602625433ee1ce8e2aa7bb3b2ac">unlockQuadraticForm</a>() { _quadraticFormMutex.unlock();}</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a4a206c86daba1b47425199befd2e1ed4">read</a>(std::istream&amp; is) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#ad80cd8ea8013c54c766684ec0ef3daa3">write</a>(std::ostream&amp; os) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> updateCache();</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        <a class="code" href="classg2o_1_1_cache_container.html">CacheContainer</a>* cacheContainer();</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;      <span class="keyword">protected</span>:</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a6e14fd3ad8e531ead03b4d83cc7362ad">  348</a></span>&#160;        <a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a6e14fd3ad8e531ead03b4d83cc7362ad">_graph</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a71eb5fdfaf5c9a442135502e23504500">  349</a></span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a71eb5fdfaf5c9a442135502e23504500">_userData</a>;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#aebf035f2c8177b5dac1bc650e0f0cf62">  350</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#aebf035f2c8177b5dac1bc650e0f0cf62">_hessianIndex</a>;</div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af98461471e6b58664a9fc4bba9340501">  351</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af98461471e6b58664a9fc4bba9340501">_fixed</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a5e9b3906c8ff800b9a0b16b10ed9fff0">  352</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a5e9b3906c8ff800b9a0b16b10ed9fff0">_marginalized</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab053ffd8851cd3b0f61576ffd349d68e">  353</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab053ffd8851cd3b0f61576ffd349d68e">_dimension</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#add1f5a0236a175784a824524244f7085">  354</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#add1f5a0236a175784a824524244f7085">_colInHessian</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab9b85ddb487ad4818bc53e0c00ff7bcc">  355</a></span>&#160;        <a class="code" href="classg2o_1_1_open_m_p_mutex.html">OpenMPMutex</a> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab9b85ddb487ad4818bc53e0c00ff7bcc">_quadraticFormMutex</a>;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a6eed5b850221cd76f0af46b97860f2e8">  357</a></span>&#160;        <a class="code" href="classg2o_1_1_cache_container.html">CacheContainer</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a6eed5b850221cd76f0af46b97860f2e8">_cacheContainer</a>;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> oplusImpl(<span class="keyword">const</span> <span class="keywordtype">double</span>* v) = 0;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> setToOriginImpl() = 0;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a35ab439967fd3a3d3e5608e3883d8487">  372</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a35ab439967fd3a3d3e5608e3883d8487">setEstimateDataImpl</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* ) { <span class="keywordflow">return</span> <span class="keyword">false</span>;}</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a088ecbdde86968f3896b2320f80ee396">  378</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a088ecbdde86968f3896b2320f80ee396">setMinimalEstimateDataImpl</a>(<span class="keyword">const</span> <span class="keywordtype">double</span>* ) { <span class="keywordflow">return</span> <span class="keyword">false</span>;}</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    };</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html">  382</a></span>&#160;    <span class="keyword">class  </span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>: <span class="keyword">public</span> <a class="code" href="classg2o_1_1_hyper_graph_1_1_edge.html">HyperGraph::Edge</a> {</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;      <span class="keyword">private</span>:</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a45d35331ee3deca38c26d1efb6b961ae">  384</a></span>&#160;        <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;      <span class="keyword">public</span>:</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>();</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        <span class="keyword">virtual</span> ~<a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>();</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>* clone() <span class="keyword">const</span>;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        <span class="comment">// indicates if all vertices are fixed</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> allVerticesFixed() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        </div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <span class="comment">// computes the error of the edge and stores it in an internal structure</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> computeError() = 0;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setMeasurementData(<span class="keyword">const</span> <span class="keywordtype">double</span>* m);</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getMeasurementData(<span class="keywordtype">double</span>* m) <span class="keyword">const</span>;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">int</span> measurementDimension() <span class="keyword">const</span>;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> setMeasurementFromState();</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4fe9c69dc5275ca661e793aca6e2d93c">  415</a></span>&#160;        <a class="code" href="classg2o_1_1_robust_kernel.html">RobustKernel</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4fe9c69dc5275ca661e793aca6e2d93c">robustKernel</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _robustKernel;}</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keywordtype">void</span> setRobustKernel(<a class="code" href="classg2o_1_1_robust_kernel.html">RobustKernel</a>* ptr);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">double</span>* errorData() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span>* errorData() = 0;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">double</span>* informationData() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span>* informationData() = 0;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#af0d53383e22347aba1bf76c1ce492f51">chi2</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> constructQuadraticForm() = 0;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> mapHessianMemory(<span class="keywordtype">double</span>* d, <span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j, <span class="keywordtype">bool</span> rowMajor) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> linearizeOplus(<a class="code" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&amp; <a class="code" href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">jacobianWorkspace</a>) = 0;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> initialEstimate(<span class="keyword">const</span> <a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">OptimizableGraph::VertexSet</a>&amp; from, <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a>* to) = 0;</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a1cef6ffa0f82f1ad3dd3d7a9f04425ee">  464</a></span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a1cef6ffa0f82f1ad3dd3d7a9f04425ee">initialEstimatePossible</a>(<span class="keyword">const</span> <a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">OptimizableGraph::VertexSet</a>&amp; from, <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a>* to) { (void) from; (void) to; <span class="keywordflow">return</span> -1.;}</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a25c2b618815622ab79705c497390d22f">  467</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a25c2b618815622ab79705c497390d22f">level</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _level;}</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#ab3e4290bc51d03ba294f36254048b15a">  469</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#ab3e4290bc51d03ba294f36254048b15a">setLevel</a>(<span class="keywordtype">int</span> l) { _level=l;}</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a0eb19697e201bd195c45ca78d55fd041">  472</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a0eb19697e201bd195c45ca78d55fd041">dimension</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _dimension;}</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#abd98d7a174df25bcc82cfdacba682fec">  474</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#abd98d7a174df25bcc82cfdacba682fec">createFrom</a>() {<span class="keywordflow">return</span> 0;}</div><div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a39c22b396ab312059ea8fa4c2776be2e">  475</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a39c22b396ab312059ea8fa4c2776be2e">createTo</a>()   {<span class="keywordflow">return</span> 0;}</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a4a206c86daba1b47425199befd2e1ed4">read</a>(std::istream&amp; is) = 0;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#ad80cd8ea8013c54c766684ec0ef3daa3">write</a>(std::ostream&amp; os) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a3c6e31c64d98db332e83166bfbd1d7ff">  483</a></span>&#160;        <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a3c6e31c64d98db332e83166bfbd1d7ff">internalId</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _internalId;}</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>* graph();</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        <span class="keyword">const</span> <a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>* graph() <span class="keyword">const</span>;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keywordtype">bool</span> setParameterId(<span class="keywordtype">int</span> argNum, <span class="keywordtype">int</span> paramId);</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4a224a1d0d0bc5ef70765f57ae685d09">  489</a></span>&#160;        <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classg2o_1_1_parameter.html">Parameter</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4a224a1d0d0bc5ef70765f57ae685d09">parameter</a>(<span class="keywordtype">int</span> argNo)<span class="keyword"> const </span>{<span class="keywordflow">return</span> *<a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>.at(argNo);}</div><div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#ae7da26fd36246411bc53ca008bc24fcf">  490</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#ae7da26fd36246411bc53ca008bc24fcf">numParameters</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>.size();}</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#ac978364c99e36c7fced59ecb383ba171">  491</a></span>&#160;        <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#ac978364c99e36c7fced59ecb383ba171">resizeParameters</a>(<span class="keywordtype">size_t</span> newSize) {</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;          <a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>.resize(newSize, 0); </div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;          _parameterIds.resize(newSize, -1);</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;          _parameterTypes.resize(newSize, <span class="keyword">typeid</span>(<span class="keywordtype">void</span>*).name());</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        }</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;      <span class="keyword">protected</span>:</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4e651628f7657c81d0e4c1b26caaa6aa">  497</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4e651628f7657c81d0e4c1b26caaa6aa">_dimension</a>;</div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a57132078028dd0455aef141e62e07db9">  498</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a57132078028dd0455aef141e62e07db9">_level</a>;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a6b942321f9e4e82051d529efb255af35">  499</a></span>&#160;        <a class="code" href="classg2o_1_1_robust_kernel.html">RobustKernel</a>* <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a6b942321f9e4e82051d529efb255af35">_robustKernel</a>;</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#abdfc449ed57479d90d2e57a8bc0bea12">  500</a></span>&#160;        <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#abdfc449ed57479d90d2e57a8bc0bea12">_internalId</a>;</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a56bddaadd70570dbd96e8deed3d4b34c">  502</a></span>&#160;        std::vector&lt;int&gt; <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a56bddaadd70570dbd96e8deed3d4b34c">_cacheIds</a>;</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> ParameterType&gt;</div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a237bea2f2fb7cc6a9cf4ee5ee6fe4d88">  505</a></span>&#160;          <span class="keywordtype">bool</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a237bea2f2fb7cc6a9cf4ee5ee6fe4d88">installParameter</a>(ParameterType*&amp; p, <span class="keywordtype">size_t</span> argNo, <span class="keywordtype">int</span> paramId=-1){</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;            <span class="keywordflow">if</span> (argNo&gt;=<a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>.size())</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;              <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;            _parameterIds[argNo] = paramId;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;            <a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>[argNo] = (<a class="code" href="classg2o_1_1_parameter.html">Parameter</a>**)&amp;p;</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;            _parameterTypes[argNo] = <span class="keyword">typeid</span>(ParameterType).name();</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;          }</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        <span class="keyword">template</span> &lt;<span class="keyword">typename</span> CacheType&gt;</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;          <span class="keywordtype">void</span> resolveCache(CacheType*&amp; cache, <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">OptimizableGraph::Vertex</a>*, </div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;              <span class="keyword">const</span> std::string&amp; _type, </div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;              <span class="keyword">const</span> <a class="code" href="namespaceg2o.html#a85cc8f2c7db8cab47b2b269a7acd6785">ParameterVector</a>&amp; parameters);</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        <span class="keywordtype">bool</span> resolveParameters();</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">bool</span> resolveCaches();</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a08666609850240956c64c95ae5ae0f2c">  522</a></span>&#160;        std::vector&lt;std::string&gt; <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a08666609850240956c64c95ae5ae0f2c">_parameterTypes</a>;</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a41c4d6a404d0b057d37fac43edec40ed">  523</a></span>&#160;        std::vector&lt;Parameter**&gt; <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a41c4d6a404d0b057d37fac43edec40ed">_parameters</a>;</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a33a35663ba5b096cb6e6078014bd6f17">  524</a></span>&#160;        std::vector&lt;int&gt; <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html#a33a35663ba5b096cb6e6078014bd6f17">_parameterIds</a>;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    };</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">  528</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* <a class="code" href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">vertex</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) { <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>*<span class="keyword">&gt;</span>(<a class="code" href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">HyperGraph::vertex</a>(<span class="keywordtype">id</span>));}</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a0e55fa99a49824af2711c0fcaf02ac1a">  531</a></span>&#160;    <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* <a class="code" href="structg2o_1_1_optimizable_graph.html#a0e55fa99a49824af2711c0fcaf02ac1a">vertex</a> (<span class="keywordtype">int</span> <span class="keywordtype">id</span>)<span class="keyword"> const</span>{ <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>*<span class="keyword">&gt;</span>(<a class="code" href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">HyperGraph::vertex</a>(<span class="keywordtype">id</span>));}</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html#a45d35331ee3deca38c26d1efb6b961ae">OptimizableGraph</a>();</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a98f4399dfc23cac840a64ae2d0d3898f">~OptimizableGraph</a>();</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#acea1342d9ab0bf717710c8f78b74ff25">addGraph</a>(<a class="code" href="structg2o_1_1_optimizable_graph.html">OptimizableGraph</a>* g);</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160; </div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ae0b93774ce1dfa0dfd501c86ad4f773e">addVertex</a>(<a class="code" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a>* v, <a class="code" href="classg2o_1_1_optimizable_graph_1_1_data.html">Data</a>* userData);</div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">  545</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">addVertex</a>(<a class="code" href="classg2o_1_1_hyper_graph_1_1_vertex.html">HyperGraph::Vertex</a>* v) { <span class="keywordflow">return</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">addVertex</a>(v, 0);}</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070">addEdge</a>(<a class="code" href="classg2o_1_1_hyper_graph_1_1_edge.html">HyperGraph::Edge</a>* e);</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    <span class="keywordtype">double</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#af0d53383e22347aba1bf76c1ce492f51">chi2</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#aec95bac1366d39b40703f2aca375f505">maxDimension</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    std::set&lt;int&gt; <a class="code" href="structg2o_1_1_optimizable_graph.html#a396e552ed234fe625e3b6785efa9c86d">dimensions</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ac1b2e36c05680dd3e60ed6f90dddf5d8">optimize</a>(<span class="keywordtype">int</span> iterations, <span class="keywordtype">bool</span> online=<span class="keyword">false</span>);</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ad295e7f06651db627b8ebde3d8898bab">preIteration</a>(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ac8d41dc0830f1ae07e9cb4a8341d3ffb">postIteration</a>(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a2ab7899a0ff7bc29177e9447a10d508c">addPreIterationAction</a>(<a class="code" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a>* action);</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a6db1ecbc582a7b79e1633eefc2109b26">addPostIterationAction</a>(<a class="code" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a>* action);</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a27f5ee7016b20bc6def24a2726fc824b">removePreIterationAction</a>(<a class="code" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a>* action);</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a172f2f5c8ec5872d5bc34077c6391839">removePostIterationAction</a>(<a class="code" href="classg2o_1_1_hyper_graph_action.html">HyperGraphAction</a>* action);</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3db385b25818a5659d1fa8407cb0db45">push</a>();</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a8487f537b16ac7a2ee416ea294a1e22e">pop</a>();</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a368b5f22dbc57abd2f651a20d039f61c">discardTop</a>();</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a34f4a170d58551ee9efac7a7a78fa833">load</a>(std::istream&amp; is, <span class="keywordtype">bool</span> createEdges=<span class="keyword">true</span>);</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a34f4a170d58551ee9efac7a7a78fa833">load</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">bool</span> createEdges=<span class="keyword">true</span>);</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d">save</a>(std::ostream&amp; os, <span class="keywordtype">int</span> level = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d">save</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">int</span> level = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    </div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#adcf211f9c7bf3ee9dab65b130807402c">saveSubset</a>(std::ostream&amp; os, <a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a>&amp; vset, <span class="keywordtype">int</span> level = 0);</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#adcf211f9c7bf3ee9dab65b130807402c">saveSubset</a>(std::ostream&amp; os, <a class="code" href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">HyperGraph::EdgeSet</a>&amp; eset);</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3db385b25818a5659d1fa8407cb0db45">push</a>(<a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a>&amp; vset);</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a8487f537b16ac7a2ee416ea294a1e22e">pop</a>(<a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a>&amp; vset);</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a368b5f22dbc57abd2f651a20d039f61c">discardTop</a>(<a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a>&amp; vset);</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a07514f6186d19b6d893a771c0bb6abf9">setFixed</a>(<a class="code" href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">HyperGraph::VertexSet</a>&amp; vset, <span class="keywordtype">bool</span> fixed);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#afaa77a4624619237563fe94cfd7b76fd">setRenamedTypesFromString</a>(<span class="keyword">const</span> std::string&amp; types);</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a5b957f752c6afe7bc76baf00129f854e">isSolverSuitable</a>(<span class="keyword">const</span> <a class="code" href="structg2o_1_1_optimization_algorithm_property.html">OptimizationAlgorithmProperty</a>&amp; solverProperty, <span class="keyword">const</span> std::set&lt;int&gt;&amp; vertDims = std::set&lt;int&gt;()) <span class="keyword">const</span>;</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a15171b6d335115858e2e86dcf576ba78">clearParameters</a>();</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#ad4a7c038288097b0b1619c609cf40e90">  637</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ad4a7c038288097b0b1619c609cf40e90">addParameter</a>(<a class="code" href="classg2o_1_1_parameter.html">Parameter</a>* p) {</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>.<a class="code" href="classg2o_1_1_parameter_container.html#a9c0b1376e780b177f2d36c4ee4f873d7">addParameter</a>(p);</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    }</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#ad9506880a9289353ddd2277fafb76ffd">  641</a></span>&#160;    <a class="code" href="classg2o_1_1_parameter.html">Parameter</a>* <a class="code" href="structg2o_1_1_optimizable_graph.html#ad9506880a9289353ddd2277fafb76ffd">parameter</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>.<a class="code" href="classg2o_1_1_parameter_container.html#ad55d9e6d2adaa4680f74be98e2ae3784">getParameter</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    }</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a23dbb64bd31deb3952d4149518e663ce">verifyInformationMatrices</a>(<span class="keywordtype">bool</span> verbose = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="comment">// helper functions to save an individual vertex</span></div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a221656c91e253b4246553a33e33c3e6b">saveVertex</a>(std::ostream&amp; os, <a class="code" href="classg2o_1_1_optimizable_graph_1_1_vertex.html">Vertex</a>* v) <span class="keyword">const</span>;</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <span class="comment">// helper functions to save an individual edge</span></div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3852abe611f2fd90a0a05979987615a2">saveEdge</a>(std::ostream&amp; os, <a class="code" href="classg2o_1_1_optimizable_graph_1_1_edge.html">Edge</a>* e) <span class="keyword">const</span>;</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">  659</a></span>&#160;    <a class="code" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&amp; <a class="code" href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">jacobianWorkspace</a>() { <span class="keywordflow">return</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">_jacobianWorkspace</a>;}</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a21d73e7a39c731d19e6bb467cad59912">  660</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a>&amp; <a class="code" href="structg2o_1_1_optimizable_graph.html#a21d73e7a39c731d19e6bb467cad59912">jacobianWorkspace</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">_jacobianWorkspace</a>;}</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#ab4ee0fc3ecd31852276ded40b62e9c76">initMultiThreading</a>();</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;  <span class="keyword">protected</span>:</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a726ab6d0b04b12f835b690d54e061731">  671</a></span>&#160;    std::map&lt;std::string, std::string&gt; <a class="code" href="structg2o_1_1_optimizable_graph.html#a726ab6d0b04b12f835b690d54e061731">_renamedTypesLookup</a>;</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a93a7f05b31bca9ccaa214499f042739a">  672</a></span>&#160;    <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a93a7f05b31bca9ccaa214499f042739a">_nextEdgeId</a>;</div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a5e6a371ad7709692e52886ecf3e7250c">  673</a></span>&#160;    std::vector&lt;HyperGraphActionSet&gt; <a class="code" href="structg2o_1_1_optimizable_graph.html#a5e6a371ad7709692e52886ecf3e7250c">_graphActions</a>;</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="comment">// do not watch this. To be removed soon, or integrated in a nice way</span></div><div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a260451b25094e5e929cc2841e31242f4">  676</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structg2o_1_1_optimizable_graph.html#a260451b25094e5e929cc2841e31242f4">_edge_has_id</a>;</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">  678</a></span>&#160;    <a class="code" href="classg2o_1_1_parameter_container.html">ParameterContainer</a> <a class="code" href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">_parameters</a>;</div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">  679</a></span>&#160;    <a class="code" href="classg2o_1_1_jacobian_workspace.html">JacobianWorkspace</a> <a class="code" href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">_jacobianWorkspace</a>;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;  };</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;  </div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;} <span class="comment">// end namespace</span></div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a33a35663ba5b096cb6e6078014bd6f17"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a33a35663ba5b096cb6e6078014bd6f17">g2o::OptimizableGraph::Edge::_parameterIds</a></div><div class="ttdeci">std::vector&lt; int &gt; _parameterIds</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:524</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a088ecbdde86968f3896b2320f80ee396"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a088ecbdde86968f3896b2320f80ee396">g2o::OptimizableGraph::Vertex::setMinimalEstimateDataImpl</a></div><div class="ttdeci">virtual bool setMinimalEstimateDataImpl(const double *)</div><div class="ttdoc">sets the initial estimate from an array of double </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:378</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a4d22b2e6832ae2ec040bfc0acb4cabb9"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a4d22b2e6832ae2ec040bfc0acb4cabb9">g2o::OptimizableGraph::Vertex::colInHessian</a></div><div class="ttdeci">int colInHessian() const</div><div class="ttdoc">get the row of this vertex in the Hessian </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:323</div></div>
<div class="ttc" id="structg2o_1_1_optimization_algorithm_property_html"><div class="ttname"><a href="structg2o_1_1_optimization_algorithm_property.html">g2o::OptimizationAlgorithmProperty</a></div><div class="ttdoc">describe the properties of a solver </div><div class="ttdef"><b>Definition:</b> optimization_algorithm_property.h:37</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_1_1_edge_html"><div class="ttname"><a href="classg2o_1_1_hyper_graph_1_1_edge.html">g2o::HyperGraph::Edge</a></div><div class="ttdoc">Abstract Edge class. </div><div class="ttdef"><b>Definition:</b> hyper_graph.h:119</div></div>
<div class="ttc" id="classg2o_1_1_cache_container_html"><div class="ttname"><a href="classg2o_1_1_cache_container.html">g2o::CacheContainer</a></div><div class="ttdef"><b>Definition:</b> cache.h:103</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_acea1342d9ab0bf717710c8f78b74ff25"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#acea1342d9ab0bf717710c8f78b74ff25">g2o::OptimizableGraph::addGraph</a></div><div class="ttdeci">void addGraph(OptimizableGraph *g)</div><div class="ttdoc">adds all edges and vertices of the graph g to this graph. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:681</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_html_af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa"><div class="ttname"><a href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69eac780d65b4de763d230e9cad4378c46fa">g2o::HyperGraph::HGET_DATA</a></div><div class="ttdef"><b>Definition:</b> hyper_graph.h:70</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a396e552ed234fe625e3b6785efa9c86d"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a396e552ed234fe625e3b6785efa9c86d">g2o::OptimizableGraph::dimensions</a></div><div class="ttdeci">std::set&lt; int &gt; dimensions() const</div><div class="ttdoc">iterates over all vertices and returns a set of all the vertex dimensions in the graph ...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:763</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a16d90305c171fe0582c6a8aef40ba89d"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89d">g2o::OptimizableGraph::ActionType</a></div><div class="ttdeci">ActionType</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:66</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html">g2o::OptimizableGraph::Vertex</a></div><div class="ttdoc">A general case Vertex for optimization. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:127</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a25c2b618815622ab79705c497390d22f"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a25c2b618815622ab79705c497390d22f">g2o::OptimizableGraph::Edge::level</a></div><div class="ttdeci">int level() const</div><div class="ttdoc">returns the level of the edge </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:467</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ae0b93774ce1dfa0dfd501c86ad4f773e"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ae0b93774ce1dfa0dfd501c86ad4f773e">g2o::OptimizableGraph::addVertex</a></div><div class="ttdeci">virtual bool addVertex(HyperGraph::Vertex *v, Data *userData)</div><div class="ttdoc">adds a new vertex. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:243</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a260451b25094e5e929cc2841e31242f4"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a260451b25094e5e929cc2841e31242f4">g2o::OptimizableGraph::_edge_has_id</a></div><div class="ttdeci">bool _edge_has_id</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:676</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a86feed80301950b100142575b48e4fca"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a86feed80301950b100142575b48e4fca">g2o::OptimizableGraph::Vertex::dimension</a></div><div class="ttdeci">int dimension() const</div><div class="ttdoc">dimension of the estimated state belonging to this node </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:315</div></div>
<div class="ttc" id="hyper__graph_8h_html"><div class="ttname"><a href="hyper__graph_8h.html">hyper_graph.h</a></div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_html"><div class="ttname"><a href="classg2o_1_1_hyper_graph.html">g2o::HyperGraph</a></div><div class="ttdoc">Class that models a directed Hyper-Graph. </div><div class="ttdef"><b>Definition:</b> hyper_graph.h:58</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_aa98d48f62d4c620cb62fbaeb1775389b"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#aa98d48f62d4c620cb62fbaeb1775389b">g2o::OptimizableGraph::Data::elementType</a></div><div class="ttdeci">virtual HyperGraph::HyperGraphElementType elementType() const</div><div class="ttdoc">returns the type of the graph element, see HyperGraphElementType </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:91</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_action_html"><div class="ttname"><a href="classg2o_1_1_hyper_graph_action.html">g2o::HyperGraphAction</a></div><div class="ttdoc">Abstract action that operates on an entire graph. </div><div class="ttdef"><b>Definition:</b> hyper_graph_action.h:48</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a15171b6d335115858e2e86dcf576ba78"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a15171b6d335115858e2e86dcf576ba78">g2o::OptimizableGraph::clearParameters</a></div><div class="ttdeci">virtual void clearParameters()</div><div class="ttdoc">remove the parameters of the graph </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:862</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_adcf211f9c7bf3ee9dab65b130807402c"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#adcf211f9c7bf3ee9dab65b130807402c">g2o::OptimizableGraph::saveSubset</a></div><div class="ttdeci">bool saveSubset(std::ostream &amp;os, HyperGraph::VertexSet &amp;vset, int level=0)</div><div class="ttdoc">save a subgraph to a stream. Again uses the Factory system. </div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a5e6a371ad7709692e52886ecf3e7250c"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a5e6a371ad7709692e52886ecf3e7250c">g2o::OptimizableGraph::_graphActions</a></div><div class="ttdeci">std::vector&lt; HyperGraphActionSet &gt; _graphActions</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:673</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_html_a703938cdb4bb636860eed55a2489d70c"><div class="ttname"><a href="classg2o_1_1_hyper_graph.html#a703938cdb4bb636860eed55a2489d70c">g2o::HyperGraph::VertexSet</a></div><div class="ttdeci">std::set&lt; Vertex * &gt; VertexSet</div><div class="ttdef"><b>Definition:</b> hyper_graph.h:91</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a41c4d6a404d0b057d37fac43edec40ed"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a41c4d6a404d0b057d37fac43edec40ed">g2o::OptimizableGraph::Edge::_parameters</a></div><div class="ttdeci">std::vector&lt; Parameter ** &gt; _parameters</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:523</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a23dbb64bd31deb3952d4149518e663ce"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a23dbb64bd31deb3952d4149518e663ce">g2o::OptimizableGraph::verifyInformationMatrices</a></div><div class="ttdeci">bool verifyInformationMatrices(bool verbose=false) const</div><div class="ttdoc">verify that all the information of the edges are semi positive definite, i.e., all Eigenvalues are &gt;=...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:867</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_add1f5a0236a175784a824524244f7085"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#add1f5a0236a175784a824524244f7085">g2o::OptimizableGraph::Vertex::_colInHessian</a></div><div class="ttdeci">int _colInHessian</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:354</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a768057be134ffe93bc88b020d031eee5"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a768057be134ffe93bc88b020d031eee5">g2o::OptimizableGraph::Vertex::userData</a></div><div class="ttdeci">Data * userData()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:138</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_aebf035f2c8177b5dac1bc650e0f0cf62"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#aebf035f2c8177b5dac1bc650e0f0cf62">g2o::OptimizableGraph::Vertex::_hessianIndex</a></div><div class="ttdeci">int _hessianIndex</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:350</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ad9506880a9289353ddd2277fafb76ffd"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ad9506880a9289353ddd2277fafb76ffd">g2o::OptimizableGraph::parameter</a></div><div class="ttdeci">Parameter * parameter(int id)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:641</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a3db385b25818a5659d1fa8407cb0db45"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a3db385b25818a5659d1fa8407cb0db45">g2o::OptimizableGraph::push</a></div><div class="ttdeci">virtual void push()</div><div class="ttdoc">push the estimate of all variables onto a stack </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:299</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a440f24c0108be5247f3529369aa1e53c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a440f24c0108be5247f3529369aa1e53c">g2o::OptimizableGraph::Vertex::setHessianIndex</a></div><div class="ttdeci">void setHessianIndex(int ti)</div><div class="ttdoc">set the temporary index of the vertex in the parameter blocks </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:301</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a6831ed69fce3dba691f53302a2813070"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a6831ed69fce3dba691f53302a2813070">g2o::OptimizableGraph::addEdge</a></div><div class="ttdeci">virtual bool addEdge(HyperGraph::Edge *e)</div><div class="ttdoc">adds a new edge. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:264</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_af0d53383e22347aba1bf76c1ce492f51"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#af0d53383e22347aba1bf76c1ce492f51">g2o::OptimizableGraph::chi2</a></div><div class="ttdeci">double chi2() const</div><div class="ttdoc">returns the chi2 of the current configuration </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:289</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a216d79149edcfa9f666140205159fde8"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a216d79149edcfa9f666140205159fde8">g2o::OptimizableGraph::Vertex::marginalized</a></div><div class="ttdeci">bool marginalized() const</div><div class="ttdoc">true =&gt; this node is marginalized out during the optimization </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:310</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_ae7da26fd36246411bc53ca008bc24fcf"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#ae7da26fd36246411bc53ca008bc24fcf">g2o::OptimizableGraph::Edge::numParameters</a></div><div class="ttdeci">size_t numParameters() const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:490</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a172f2f5c8ec5872d5bc34077c6391839"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a172f2f5c8ec5872d5bc34077c6391839">g2o::OptimizableGraph::removePostIterationAction</a></div><div class="ttdeci">bool removePostIterationAction(HyperGraphAction *action)</div><div class="ttdoc">remove an action that should no longer be execured after each iteration </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:812</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89dad79dc2fea3676bc2e26a83b7aca0cff6">g2o::OptimizableGraph::AT_PREITERATION</a></div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:67</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a237bea2f2fb7cc6a9cf4ee5ee6fe4d88"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a237bea2f2fb7cc6a9cf4ee5ee6fe4d88">g2o::OptimizableGraph::Edge::installParameter</a></div><div class="ttdeci">bool installParameter(ParameterType *&amp;p, size_t argNo, int paramId=-1)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:505</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a6e14fd3ad8e531ead03b4d83cc7362ad"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a6e14fd3ad8e531ead03b4d83cc7362ad">g2o::OptimizableGraph::Vertex::_graph</a></div><div class="ttdeci">OptimizableGraph * _graph</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:348</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_aa81fb1975f34e3aaf4c5110f7778a54e"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#aa81fb1975f34e3aaf4c5110f7778a54e">g2o::OptimizableGraph::Data::~Data</a></div><div class="ttdeci">virtual ~Data()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:57</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a8cf4be7e2442444d9d43a80cc8388b1e"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8cf4be7e2442444d9d43a80cc8388b1e">g2o::OptimizableGraph::Vertex::graph</a></div><div class="ttdeci">const OptimizableGraph * graph() const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:325</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_af92ef49e1bcd6a8166afa151d367b905"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af92ef49e1bcd6a8166afa151d367b905">g2o::OptimizableGraph::Vertex::setFixed</a></div><div class="ttdeci">void setFixed(bool fixed)</div><div class="ttdoc">true =&gt; this node should be considered fixed during the optimization </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:307</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a16d90305c171fe0582c6a8aef40ba89da6022cb4383dca15d503e600c463c5e5a"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da6022cb4383dca15d503e600c463c5e5a">g2o::OptimizableGraph::AT_POSTITERATION</a></div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:67</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ac8d41dc0830f1ae07e9cb4a8341d3ffb"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ac8d41dc0830f1ae07e9cb4a8341d3ffb">g2o::OptimizableGraph::postIteration</a></div><div class="ttdeci">virtual void postIteration(int)</div><div class="ttdoc">called at the end of an iteration (argument is the number of the iteration) </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:784</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ad4a7c038288097b0b1619c609cf40e90"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ad4a7c038288097b0b1619c609cf40e90">g2o::OptimizableGraph::addParameter</a></div><div class="ttdeci">bool addParameter(Parameter *p)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:637</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_ac57651173d6ce4bb4eebf8cb1d917551"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ac57651173d6ce4bb4eebf8cb1d917551">g2o::OptimizableGraph::Vertex::setId</a></div><div class="ttdeci">virtual void setId(int id)</div><div class="ttdoc">sets the id of the node in the graph be sure that the graph keeps consistent after changing the id ...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:318</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_a5811aac3f8eab3c19207663e946b343b"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#a5811aac3f8eab3c19207663e946b343b">g2o::OptimizableGraph::Data::setNext</a></div><div class="ttdeci">void setNext(Data *next_)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:94</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a19e014e8ec2e9a6e894da8c3a8f8e50d"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a19e014e8ec2e9a6e894da8c3a8f8e50d">g2o::OptimizableGraph::vertex</a></div><div class="ttdeci">Vertex * vertex(int id)</div><div class="ttdoc">returns the vertex number id appropriately casted </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:528</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_aec95bac1366d39b40703f2aca375f505"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#aec95bac1366d39b40703f2aca375f505">g2o::OptimizableGraph::maxDimension</a></div><div class="ttdeci">int maxDimension() const</div><div class="ttdoc">return the maximum dimension of all vertices in the graph </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:705</div></div>
<div class="ttc" id="parameter__container_8h_html"><div class="ttname"><a href="parameter__container_8h.html">parameter_container.h</a></div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a4e651628f7657c81d0e4c1b26caaa6aa"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4e651628f7657c81d0e4c1b26caaa6aa">g2o::OptimizableGraph::Edge::_dimension</a></div><div class="ttdeci">int _dimension</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:497</div></div>
<div class="ttc" id="classg2o_1_1_parameter_container_html_ad55d9e6d2adaa4680f74be98e2ae3784"><div class="ttname"><a href="classg2o_1_1_parameter_container.html#ad55d9e6d2adaa4680f74be98e2ae3784">g2o::ParameterContainer::getParameter</a></div><div class="ttdeci">Parameter * getParameter(int id)</div><div class="ttdoc">return a parameter based on its ID </div><div class="ttdef"><b>Definition:</b> parameter_container.cpp:70</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_ab053ffd8851cd3b0f61576ffd349d68e"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab053ffd8851cd3b0f61576ffd349d68e">g2o::OptimizableGraph::Vertex::_dimension</a></div><div class="ttdeci">int _dimension</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:353</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a54f01b9b6071e65e6abeebe4afb29dec"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a54f01b9b6071e65e6abeebe4afb29dec">g2o::OptimizableGraph::VertexContainer</a></div><div class="ttdeci">std::vector&lt; OptimizableGraph::Vertex * &gt; VertexContainer</div><div class="ttdoc">vector container for vertices </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:120</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_a45d35331ee3deca38c26d1efb6b961ae"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#a45d35331ee3deca38c26d1efb6b961ae">g2o::OptimizableGraph::Data::OptimizableGraph</a></div><div class="ttdeci">friend struct OptimizableGraph</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:83</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_1_1_vertex_html"><div class="ttname"><a href="classg2o_1_1_hyper_graph_1_1_vertex.html">g2o::HyperGraph::Vertex</a></div><div class="ttdoc">abstract Vertex, your types must derive from that one </div><div class="ttdef"><b>Definition:</b> hyper_graph.h:97</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_a8e0569f2b8cb8400d3eada1bd13c0ccb"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#a8e0569f2b8cb8400d3eada1bd13c0ccb">g2o::OptimizableGraph::Data::_next</a></div><div class="ttdeci">Data * _next</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:96</div></div>
<div class="ttc" id="classg2o_1_1_parameter_html"><div class="ttname"><a href="classg2o_1_1_parameter.html">g2o::Parameter</a></div><div class="ttdef"><b>Definition:</b> parameter.h:36</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_ac41fda9360e81bf704681831b1df11f8"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ac41fda9360e81bf704681831b1df11f8">g2o::OptimizableGraph::Vertex::setMinimalEstimateData</a></div><div class="ttdeci">bool setMinimalEstimateData(const std::vector&lt; double &gt; &amp;estimate)</div><div class="ttdoc">sets the initial estimate from an array of double. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:241</div></div>
<div class="ttc" id="openmp__mutex_8h_html"><div class="ttname"><a href="openmp__mutex_8h.html">openmp_mutex.h</a></div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a6db1ecbc582a7b79e1633eefc2109b26"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a6db1ecbc582a7b79e1633eefc2109b26">g2o::OptimizableGraph::addPostIterationAction</a></div><div class="ttdeci">bool addPostIterationAction(HyperGraphAction *action)</div><div class="ttdoc">add an action to be executed after each iteration </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:795</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a161c01a29d09cca22e223ab2048eaba8"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a161c01a29d09cca22e223ab2048eaba8">g2o::OptimizableGraph::_jacobianWorkspace</a></div><div class="ttdeci">JacobianWorkspace _jacobianWorkspace</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:679</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_a1e36ab8bfbbd4df1639338330bbaaf3c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#a1e36ab8bfbbd4df1639338330bbaaf3c">g2o::OptimizableGraph::Data::next</a></div><div class="ttdeci">const Data * next() const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:92</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a97294e6a1a573a44fe82ba36fc52c619"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a97294e6a1a573a44fe82ba36fc52c619">g2o::OptimizableGraph::Vertex::fixed</a></div><div class="ttdeci">bool fixed() const</div><div class="ttdoc">true =&gt; this node is fixed during the optimization </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:305</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a506c9664e88d886ba612d3ea95b6c76b"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a506c9664e88d886ba612d3ea95b6c76b">g2o::OptimizableGraph::Vertex::userData</a></div><div class="ttdeci">const Data * userData() const</div><div class="ttdoc">the user data associated with this vertex </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:137</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a221656c91e253b4246553a33e33c3e6b"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a221656c91e253b4246553a33e33c3e6b">g2o::OptimizableGraph::saveVertex</a></div><div class="ttdeci">bool saveVertex(std::ostream &amp;os, Vertex *v) const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:817</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a5e9b3906c8ff800b9a0b16b10ed9fff0"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a5e9b3906c8ff800b9a0b16b10ed9fff0">g2o::OptimizableGraph::Vertex::_marginalized</a></div><div class="ttdeci">bool _marginalized</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:352</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a05a371cfa6314d0f2d209289b01cc922"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a05a371cfa6314d0f2d209289b01cc922">g2o::OptimizableGraph::Vertex::hessianIndex</a></div><div class="ttdeci">int hessianIndex() const</div><div class="ttdoc">temporary index of this node in the parameter vector obtained from linearization </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:298</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a35ab439967fd3a3d3e5608e3883d8487"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a35ab439967fd3a3d3e5608e3883d8487">g2o::OptimizableGraph::Vertex::setEstimateDataImpl</a></div><div class="ttdeci">virtual bool setEstimateDataImpl(const double *)</div><div class="ttdoc">writes the estimater to an array of double </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:372</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_html_af603119d5d3475aed6e34ee9d701b69e"><div class="ttname"><a href="classg2o_1_1_hyper_graph.html#af603119d5d3475aed6e34ee9d701b69e">g2o::HyperGraph::HyperGraphElementType</a></div><div class="ttdeci">HyperGraphElementType</div><div class="ttdoc">enum of all the types we have in our graphs </div><div class="ttdef"><b>Definition:</b> hyper_graph.h:65</div></div>
<div class="ttc" id="namespaceg2o_html"><div class="ttname"><a href="namespaceg2o.html">g2o</a></div><div class="ttdef"><b>Definition:</b> base_binary_edge.h:37</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a98f4399dfc23cac840a64ae2d0d3898f"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a98f4399dfc23cac840a64ae2d0d3898f">g2o::OptimizableGraph::~OptimizableGraph</a></div><div class="ttdeci">virtual ~OptimizableGraph()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:237</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_afaa77a4624619237563fe94cfd7b76fd"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#afaa77a4624619237563fe94cfd7b76fd">g2o::OptimizableGraph::setRenamedTypesFromString</a></div><div class="ttdeci">void setRenamedTypesFromString(const std::string &amp;types)</div><div class="ttdoc">set the renamed types lookup from a string, format is for example: VERTEX_CAM=VERTEX_SE3:EXPMAP,EDGE_PROJECT_P2MC=EDGE_PROJECT_XYZ:EXPMAP This will change the occurance of VERTEX_CAM in the file to VERTEX_SE3:EXPMAP </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:714</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a0eb19697e201bd195c45ca78d55fd041"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a0eb19697e201bd195c45ca78d55fd041">g2o::OptimizableGraph::Edge::dimension</a></div><div class="ttdeci">int dimension() const</div><div class="ttdoc">returns the dimensions of the error function </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:472</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a2eb3dbe08fd20ca8feeeaecc63ce240c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a2eb3dbe08fd20ca8feeeaecc63ce240c">g2o::OptimizableGraph::Vertex::lockQuadraticForm</a></div><div class="ttdeci">void lockQuadraticForm()</div><div class="ttdoc">lock for the block of the hessian and the b vector associated with this vertex, to avoid race-conditi...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:333</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_a4a206c86daba1b47425199befd2e1ed4"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#a4a206c86daba1b47425199befd2e1ed4">g2o::OptimizableGraph::Data::read</a></div><div class="ttdeci">virtual bool read(std::istream &amp;is)=0</div><div class="ttdoc">read the data from a stream </div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_ac978364c99e36c7fced59ecb383ba171"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#ac978364c99e36c7fced59ecb383ba171">g2o::OptimizableGraph::Edge::resizeParameters</a></div><div class="ttdeci">void resizeParameters(size_t newSize)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:491</div></div>
<div class="ttc" id="classg2o_1_1_parameter_container_html"><div class="ttname"><a href="classg2o_1_1_parameter_container.html">g2o::ParameterContainer</a></div><div class="ttdoc">map id to parameters </div><div class="ttdef"><b>Definition:</b> parameter_container.h:41</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a57132078028dd0455aef141e62e07db9"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a57132078028dd0455aef141e62e07db9">g2o::OptimizableGraph::Edge::_level</a></div><div class="ttdeci">int _level</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:498</div></div>
<div class="ttc" id="namespaceg2o_html_a85cc8f2c7db8cab47b2b269a7acd6785"><div class="ttname"><a href="namespaceg2o.html#a85cc8f2c7db8cab47b2b269a7acd6785">g2o::ParameterVector</a></div><div class="ttdeci">std::vector&lt; Parameter * &gt; ParameterVector</div><div class="ttdef"><b>Definition:</b> parameter.h:52</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_ab10678592b5e707bf4abdc0ff6b8e4bf"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab10678592b5e707bf4abdc0ff6b8e4bf">g2o::OptimizableGraph::Vertex::setToOrigin</a></div><div class="ttdeci">void setToOrigin()</div><div class="ttdoc">sets the node to the origin (used in the multilevel stuff) </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:151</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html">g2o::OptimizableGraph::Data</a></div><div class="ttdoc">data packet for a vertex. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:81</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html">g2o::OptimizableGraph::Edge</a></div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:382</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a2ab7899a0ff7bc29177e9447a10d508c"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a2ab7899a0ff7bc29177e9447a10d508c">g2o::OptimizableGraph::addPreIterationAction</a></div><div class="ttdeci">bool addPreIterationAction(HyperGraphAction *action)</div><div class="ttdoc">add an action to be executed before each iteration </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:801</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a368b5f22dbc57abd2f651a20d039f61c"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a368b5f22dbc57abd2f651a20d039f61c">g2o::OptimizableGraph::discardTop</a></div><div class="ttdeci">virtual void discardTop()</div><div class="ttdoc">discard the last backup of the estimate for all variables by removing it from the stack ...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:315</div></div>
<div class="ttc" id="structg2o_1_1_hyper_graph_1_1_hyper_graph_element_html"><div class="ttname"><a href="structg2o_1_1_hyper_graph_1_1_hyper_graph_element.html">g2o::HyperGraph::HyperGraphElement</a></div><div class="ttdoc">base hyper graph element, specialized in vertex and edge </div><div class="ttdef"><b>Definition:</b> hyper_graph.h:82</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a6eed5b850221cd76f0af46b97860f2e8"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a6eed5b850221cd76f0af46b97860f2e8">g2o::OptimizableGraph::Vertex::_cacheContainer</a></div><div class="ttdeci">CacheContainer * _cacheContainer</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:357</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a39c22b396ab312059ea8fa4c2776be2e"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a39c22b396ab312059ea8fa4c2776be2e">g2o::OptimizableGraph::Edge::createTo</a></div><div class="ttdeci">virtual Vertex * createTo()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:475</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a8487f537b16ac7a2ee416ea294a1e22e"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a8487f537b16ac7a2ee416ea294a1e22e">g2o::OptimizableGraph::pop</a></div><div class="ttdeci">virtual void pop()</div><div class="ttdoc">pop (restore) the estimate of all variables from the stack </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:307</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_ab3e4290bc51d03ba294f36254048b15a"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#ab3e4290bc51d03ba294f36254048b15a">g2o::OptimizableGraph::Edge::setLevel</a></div><div class="ttdeci">void setLevel(int l)</div><div class="ttdoc">sets the level of the edge </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:469</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_html_ab07fe8bd9982a66ba34e83dff8317ea2"><div class="ttname"><a href="classg2o_1_1_hyper_graph.html#ab07fe8bd9982a66ba34e83dff8317ea2">g2o::HyperGraph::vertex</a></div><div class="ttdeci">Vertex * vertex(int id)</div><div class="ttdoc">returns a vertex id in the hyper-graph, or 0 if the vertex id is not present </div><div class="ttdef"><b>Definition:</b> hyper_graph.cpp:60</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_aa3562ad6794c36ea832095131cfffaac"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#aa3562ad6794c36ea832095131cfffaac">g2o::OptimizableGraph::HyperGraphActionSet</a></div><div class="ttdeci">std::set&lt; HyperGraphAction * &gt; HyperGraphActionSet</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:71</div></div>
<div class="ttc" id="classg2o_1_1_robust_kernel_html"><div class="ttname"><a href="classg2o_1_1_robust_kernel.html">g2o::RobustKernel</a></div><div class="ttdoc">base for all robust cost functions </div><div class="ttdef"><b>Definition:</b> robust_kernel.h:51</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a6b942321f9e4e82051d529efb255af35"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a6b942321f9e4e82051d529efb255af35">g2o::OptimizableGraph::Edge::_robustKernel</a></div><div class="ttdeci">RobustKernel * _robustKernel</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:499</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_abdcd545b6870b37135b055d18dae7a36"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#abdcd545b6870b37135b055d18dae7a36">g2o::OptimizableGraph::Vertex::G2O_ATTRIBUTE_DEPRECATED</a></div><div class="ttdeci">void G2O_ATTRIBUTE_DEPRECATED(setTempIndex(int ti))</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:302</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html">g2o::OptimizableGraph</a></div><div class="ttdoc">This is an abstract class that represents one optimization problem. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:64</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a3f845c6f0ba9a87ab15caaddba5a4037"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a3f845c6f0ba9a87ab15caaddba5a4037">g2o::OptimizableGraph::Vertex::graph</a></div><div class="ttdeci">OptimizableGraph * graph()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:327</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_acc3b27eab95474c09ad52e6931f1d635"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#acc3b27eab95474c09ad52e6931f1d635">g2o::OptimizableGraph::Vertex::getEstimateData</a></div><div class="ttdeci">virtual bool getEstimateData(std::vector&lt; double &gt; &amp;estimate) const</div><div class="ttdoc">writes the estimater to an array of double </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:215</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a0e55fa99a49824af2711c0fcaf02ac1a"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a0e55fa99a49824af2711c0fcaf02ac1a">g2o::OptimizableGraph::vertex</a></div><div class="ttdeci">const Vertex * vertex(int id) const</div><div class="ttdoc">returns the vertex number id appropriately casted </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:531</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ac1b2e36c05680dd3e60ed6f90dddf5d8"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ac1b2e36c05680dd3e60ed6f90dddf5d8">g2o::OptimizableGraph::optimize</a></div><div class="ttdeci">virtual int optimize(int iterations, bool online=false)</div><div class="ttdoc">carry out n iterations </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:287</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a5b957f752c6afe7bc76baf00129f854e"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a5b957f752c6afe7bc76baf00129f854e">g2o::OptimizableGraph::isSolverSuitable</a></div><div class="ttdeci">bool isSolverSuitable(const OptimizationAlgorithmProperty &amp;solverProperty, const std::set&lt; int &gt; &amp;vertDims=std::set&lt; int &gt;()) const</div><div class="ttdoc">test whether a solver is suitable for optimizing this graph. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:740</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a56bddaadd70570dbd96e8deed3d4b34c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a56bddaadd70570dbd96e8deed3d4b34c">g2o::OptimizableGraph::Edge::_cacheIds</a></div><div class="ttdeci">std::vector&lt; int &gt; _cacheIds</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:502</div></div>
<div class="ttc" id="classg2o_1_1_open_m_p_mutex_html"><div class="ttname"><a href="classg2o_1_1_open_m_p_mutex.html">g2o::OpenMPMutex</a></div><div class="ttdef"><b>Definition:</b> openmp_mutex.h:62</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_af4357b634cfd884cd2fa1abb05832ec8"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af4357b634cfd884cd2fa1abb05832ec8">g2o::OptimizableGraph::Vertex::oplus</a></div><div class="ttdeci">void oplus(const double *v)</div><div class="ttdoc">Update the position of the node from the parameters in v. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:291</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare_html"><div class="ttname"><a href="structg2o_1_1_optimizable_graph_1_1_vertex_i_d_compare.html">g2o::OptimizableGraph::VertexIDCompare</a></div><div class="ttdoc">order vertices based on their ID </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:102</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a3a7974befcd934f28a36de3999423d21"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a3a7974befcd934f28a36de3999423d21">g2o::OptimizableGraph::_parameters</a></div><div class="ttdeci">ParameterContainer _parameters</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:678</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a8f7ac810cad82a004365c1221fd16234"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8f7ac810cad82a004365c1221fd16234">g2o::OptimizableGraph::Vertex::addUserData</a></div><div class="ttdeci">void addUserData(Data *obs)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:141</div></div>
<div class="ttc" id="jacobian__workspace_8h_html"><div class="ttname"><a href="jacobian__workspace_8h.html">jacobian_workspace.h</a></div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_af98461471e6b58664a9fc4bba9340501"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af98461471e6b58664a9fc4bba9340501">g2o::OptimizableGraph::Vertex::_fixed</a></div><div class="ttdeci">bool _fixed</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:351</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a07514f6186d19b6d893a771c0bb6abf9"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a07514f6186d19b6d893a771c0bb6abf9">g2o::OptimizableGraph::setFixed</a></div><div class="ttdeci">virtual void setFixed(HyperGraph::VertexSet &amp;vset, bool fixed)</div><div class="ttdoc">fixes/releases a set of vertices </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:347</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a08666609850240956c64c95ae5ae0f2c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a08666609850240956c64c95ae5ae0f2c">g2o::OptimizableGraph::Edge::_parameterTypes</a></div><div class="ttdeci">std::vector&lt; std::string &gt; _parameterTypes</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:522</div></div>
<div class="ttc" id="classg2o_1_1_jacobian_workspace_html"><div class="ttname"><a href="classg2o_1_1_jacobian_workspace.html">g2o::JacobianWorkspace</a></div><div class="ttdoc">provide memory workspace for computing the Jacobians </div><div class="ttdef"><b>Definition:</b> jacobian_workspace.h:50</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a3c6e31c64d98db332e83166bfbd1d7ff"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a3c6e31c64d98db332e83166bfbd1d7ff">g2o::OptimizableGraph::Edge::internalId</a></div><div class="ttdeci">long long internalId() const</div><div class="ttdoc">the internal ID of the edge </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:483</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_af9c0427357f1e81f9008c3173fddf34c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#af9c0427357f1e81f9008c3173fddf34c">g2o::OptimizableGraph::Data::next</a></div><div class="ttdeci">Data * next()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:93</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a8f22181a161d724e95631d5da742b66a"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a8f22181a161d724e95631d5da742b66a">g2o::OptimizableGraph::Vertex::G2O_ATTRIBUTE_DEPRECATED</a></div><div class="ttdeci">int G2O_ATTRIBUTE_DEPRECATED(tempIndex() const)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:299</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a726ab6d0b04b12f835b690d54e061731"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a726ab6d0b04b12f835b690d54e061731">g2o::OptimizableGraph::_renamedTypesLookup</a></div><div class="ttdeci">std::map&lt; std::string, std::string &gt; _renamedTypesLookup</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:671</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a16d90305c171fe0582c6a8aef40ba89da33b97f5bc80d2e6227c95364573d3651">g2o::OptimizableGraph::AT_NUM_ELEMENTS</a></div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:68</div></div>
<div class="ttc" id="classg2o_1_1_parameter_container_html_a9c0b1376e780b177f2d36c4ee4f873d7"><div class="ttname"><a href="classg2o_1_1_parameter_container.html#a9c0b1376e780b177f2d36c4ee4f873d7">g2o::ParameterContainer::addParameter</a></div><div class="ttdeci">bool addParameter(Parameter *p)</div><div class="ttdoc">add parameter to the container </div><div class="ttdef"><b>Definition:</b> parameter_container.cpp:60</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_aa605891d46b99ed97accf659f10bc8d5"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#aa605891d46b99ed97accf659f10bc8d5">g2o::OptimizableGraph::Vertex::setColInHessian</a></div><div class="ttdeci">void setColInHessian(int c)</div><div class="ttdoc">set the row of this vertex in the Hessian </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:321</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a4fe9c69dc5275ca661e793aca6e2d93c"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4fe9c69dc5275ca661e793aca6e2d93c">g2o::OptimizableGraph::Edge::robustKernel</a></div><div class="ttdeci">RobustKernel * robustKernel() const</div><div class="ttdoc">if NOT NULL, error of this edge will be robustifed with the kernel </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:415</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_html_a5e2970e236c0dcb4eff7c205d7b6b4ae"><div class="ttname"><a href="classg2o_1_1_hyper_graph.html#a5e2970e236c0dcb4eff7c205d7b6b4ae">g2o::HyperGraph::EdgeSet</a></div><div class="ttdeci">std::set&lt; Edge * &gt; EdgeSet</div><div class="ttdef"><b>Definition:</b> hyper_graph.h:90</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare_html"><div class="ttname"><a href="structg2o_1_1_optimizable_graph_1_1_edge_i_d_compare.html">g2o::OptimizableGraph::EdgeIDCompare</a></div><div class="ttdoc">order edges based on the internal ID, which is assigned to the edge in addEdge() </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:112</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ab4ee0fc3ecd31852276ded40b62e9c76"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ab4ee0fc3ecd31852276ded40b62e9c76">g2o::OptimizableGraph::initMultiThreading</a></div><div class="ttdeci">static bool initMultiThreading()</div><div class="ttdoc">Eigen starting from version 3.1 requires that we call an initialize function, if we perform calls to ...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:901</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_abdfc449ed57479d90d2e57a8bc0bea12"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#abdfc449ed57479d90d2e57a8bc0bea12">g2o::OptimizableGraph::Edge::_internalId</a></div><div class="ttdeci">long long _internalId</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:500</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ac6f41f49fe6148fbe17133d10bf29b4c"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ac6f41f49fe6148fbe17133d10bf29b4c">g2o::OptimizableGraph::addVertex</a></div><div class="ttdeci">virtual bool addVertex(HyperGraph::Vertex *v)</div><div class="ttdoc">adds a vertex to the graph. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:545</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_a647b9fcb65aa8309f7103635135ea513"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#a647b9fcb65aa8309f7103635135ea513">g2o::OptimizableGraph::Data::Data</a></div><div class="ttdeci">Data()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:53</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_aa669dbd1d6e34e49fecda711ff1b78c6"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#aa669dbd1d6e34e49fecda711ff1b78c6">g2o::OptimizableGraph::jacobianWorkspace</a></div><div class="ttdeci">JacobianWorkspace &amp; jacobianWorkspace()</div><div class="ttdoc">the workspace for storing the Jacobians of the graph </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:659</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a4a224a1d0d0bc5ef70765f57ae685d09"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a4a224a1d0d0bc5ef70765f57ae685d09">g2o::OptimizableGraph::Edge::parameter</a></div><div class="ttdeci">const Parameter * parameter(int argNo) const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:489</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_ad295e7f06651db627b8ebde3d8898bab"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#ad295e7f06651db627b8ebde3d8898bab">g2o::OptimizableGraph::preIteration</a></div><div class="ttdeci">virtual void preIteration(int)</div><div class="ttdoc">called at the beginning of an iteration (argument is the number of the iteration) ...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:773</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_a1cef6ffa0f82f1ad3dd3d7a9f04425ee"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#a1cef6ffa0f82f1ad3dd3d7a9f04425ee">g2o::OptimizableGraph::Edge::initialEstimatePossible</a></div><div class="ttdeci">virtual double initialEstimatePossible(const OptimizableGraph::VertexSet &amp;from, OptimizableGraph::Vertex *to)</div><div class="ttdoc">override in your class if it&amp;#39;s possible to initialize the vertices in certain combinations. </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:464</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_abee0b60ade0644904a489564def8ad1d"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#abee0b60ade0644904a489564def8ad1d">g2o::OptimizableGraph::save</a></div><div class="ttdeci">virtual bool save(std::ostream &amp;os, int level=0) const</div><div class="ttdoc">save the graph to a stream. Again uses the Factory system. </div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a5badd602625433ee1ce8e2aa7bb3b2ac"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a5badd602625433ee1ce8e2aa7bb3b2ac">g2o::OptimizableGraph::Vertex::unlockQuadraticForm</a></div><div class="ttdeci">void unlockQuadraticForm()</div><div class="ttdoc">unlock the block of the hessian and the b vector associated with this vertex </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:337</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a71eb5fdfaf5c9a442135502e23504500"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a71eb5fdfaf5c9a442135502e23504500">g2o::OptimizableGraph::Vertex::_userData</a></div><div class="ttdeci">Data * _userData</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:349</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_ab9b85ddb487ad4818bc53e0c00ff7bcc"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#ab9b85ddb487ad4818bc53e0c00ff7bcc">g2o::OptimizableGraph::Vertex::_quadraticFormMutex</a></div><div class="ttdeci">OpenMPMutex _quadraticFormMutex</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:355</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a3852abe611f2fd90a0a05979987615a2"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a3852abe611f2fd90a0a05979987615a2">g2o::OptimizableGraph::saveEdge</a></div><div class="ttdeci">bool saveEdge(std::ostream &amp;os, Edge *e) const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:843</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_afabf1782886c78bf7b312bb1f2c90524"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#afabf1782886c78bf7b312bb1f2c90524">g2o::OptimizableGraph::Vertex::setMarginalized</a></div><div class="ttdeci">void setMarginalized(bool marginalized)</div><div class="ttdoc">true =&gt; this node should be marginalized out during the optimization </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:312</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a93a7f05b31bca9ccaa214499f042739a"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a93a7f05b31bca9ccaa214499f042739a">g2o::OptimizableGraph::_nextEdgeId</a></div><div class="ttdeci">long long _nextEdgeId</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:672</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_edge_html_abd98d7a174df25bcc82cfdacba682fec"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_edge.html#abd98d7a174df25bcc82cfdacba682fec">g2o::OptimizableGraph::Edge::createFrom</a></div><div class="ttdeci">virtual Vertex * createFrom()</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:474</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a34f4a170d58551ee9efac7a7a78fa833"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a34f4a170d58551ee9efac7a7a78fa833">g2o::OptimizableGraph::load</a></div><div class="ttdeci">virtual bool load(std::istream &amp;is, bool createEdges=true)</div><div class="ttdoc">load the graph from a stream. Uses the Factory singleton for creating the vertices and edges...</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a1cf16cd3b2e99169cdd6dfc139f926bc"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a1cf16cd3b2e99169cdd6dfc139f926bc">g2o::OptimizableGraph::Vertex::setEstimateData</a></div><div class="ttdeci">bool setEstimateData(const std::vector&lt; double &gt; &amp;estimate)</div><div class="ttdoc">sets the initial estimate from an array of double Implement setEstimateDataImpl() ...</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:197</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a21d73e7a39c731d19e6bb467cad59912"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a21d73e7a39c731d19e6bb467cad59912">g2o::OptimizableGraph::jacobianWorkspace</a></div><div class="ttdeci">const JacobianWorkspace &amp; jacobianWorkspace() const</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:660</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_data_html_ad80cd8ea8013c54c766684ec0ef3daa3"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_data.html#ad80cd8ea8013c54c766684ec0ef3daa3">g2o::OptimizableGraph::Data::write</a></div><div class="ttdeci">virtual bool write(std::ostream &amp;os) const =0</div><div class="ttdoc">write the data to a stream </div></div>
<div class="ttc" id="parameter_8h_html"><div class="ttname"><a href="parameter_8h.html">parameter.h</a></div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_a858d15a4fadebfc8bce0162ac675f608"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#a858d15a4fadebfc8bce0162ac675f608">g2o::OptimizableGraph::Vertex::setUserData</a></div><div class="ttdeci">void setUserData(Data *obs)</div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:140</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a2b43e807ae6d61ef8749ca1ef7c25f62"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a2b43e807ae6d61ef8749ca1ef7c25f62">g2o::OptimizableGraph::EdgeContainer</a></div><div class="ttdeci">std::vector&lt; OptimizableGraph::Edge * &gt; EdgeContainer</div><div class="ttdoc">vector container for edges </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:122</div></div>
<div class="ttc" id="classg2o_1_1_hyper_graph_1_1_vertex_html_a48191960395856d1b686287489e53da3"><div class="ttname"><a href="classg2o_1_1_hyper_graph_1_1_vertex.html#a48191960395856d1b686287489e53da3">g2o::HyperGraph::Vertex::id</a></div><div class="ttdeci">int id() const</div><div class="ttdoc">returns the id </div><div class="ttdef"><b>Definition:</b> hyper_graph.h:103</div></div>
<div class="ttc" id="structg2o_1_1_optimizable_graph_html_a27f5ee7016b20bc6def24a2726fc824b"><div class="ttname"><a href="structg2o_1_1_optimizable_graph.html#a27f5ee7016b20bc6def24a2726fc824b">g2o::OptimizableGraph::removePreIterationAction</a></div><div class="ttdeci">bool removePreIterationAction(HyperGraphAction *action)</div><div class="ttdoc">remove an action that should no longer be execured before each iteration </div><div class="ttdef"><b>Definition:</b> optimizable_graph.cpp:807</div></div>
<div class="ttc" id="classg2o_1_1_optimizable_graph_1_1_vertex_html_af928d21e7304cb21d75acf56bc40470a"><div class="ttname"><a href="classg2o_1_1_optimizable_graph_1_1_vertex.html#af928d21e7304cb21d75acf56bc40470a">g2o::OptimizableGraph::Vertex::getMinimalEstimateData</a></div><div class="ttdeci">virtual bool getMinimalEstimateData(std::vector&lt; double &gt; &amp;estimate) const</div><div class="ttdoc">writes the estimate to an array of double </div><div class="ttdef"><b>Definition:</b> optimizable_graph.h:259</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_08235c883c2d11e586a63e6645937db5.html">Thirdparty</a></li><li class="navelem"><a class="el" href="dir_6238d635334f7e809f450ee18181fd21.html">g2o</a></li><li class="navelem"><a class="el" href="dir_62a53d30c17c36057e41412a1a4f77b8.html">g2o</a></li><li class="navelem"><a class="el" href="dir_b7aaf3f9367a0f07449e9b09401b4637.html">core</a></li><li class="navelem"><a class="el" href="optimizable__graph_8h.html">optimizable_graph.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
